package com.tl.boot.main.datasource;

import com.tl.boot.common.enums.LocalDataBaseEnum;

/**
 * com.tl.boot.main.datasource -- DataSourceType
 * Description:
 * Created by joshua_liu <a href="mailto:joshualwork@163.com"></a>
 * On 2019/9/24 17:18
 */
public class DataSourceType {

    // 使用ThreadLocal保证线程安全
    private static final ThreadLocal<LocalDataBaseEnum> TYPE = new ThreadLocal<>();

    // 往当前线程里设置数据源类型
    public static void setDataBaseType(LocalDataBaseEnum dataBaseType) {
        if (dataBaseType == null) {
            throw new NullPointerException();
        }
        TYPE.set(dataBaseType);
    }

    // 获取数据源类型
    public static LocalDataBaseEnum getDataBaseType() {
        LocalDataBaseEnum dataBaseType = TYPE.get() == null ? LocalDataBaseEnum.PRIMARY_DRUID: TYPE.get();
        return dataBaseType;
    }

    // 清空数据类型
    public static void clearDataBaseType() {
        TYPE.remove();
    }

}
